package vip.xiaonuo.smzq.modular.lifecycle.mapper.module;

import cn.hutool.core.lang.Dict;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface CommonMapper {
    /**
     * 根据父id查询表的子数据
     * @param parentId 父亲id
     * @param tableName 表名
     * @return
     */
    List<Dict> queryChildrenByParentId(@Param("parentId")String parentId, @Param("tableName")String tableName);

    /**
     * 根据子id查询所有的父节点
     * @param childrenId 子childrenId
     * @param tableName 表名
     * @return
     */
    List<Dict> queryParentsByChildrenId(@Param("childrenId")String childrenId, @Param("tableName")String tableName);

    /**
     * 根据子id查询所有的父节点
     * @return
     */
    List<Dict> queryXZQParentsByChildrenId(Dict params);

    /**
     * 根据父id查询表的子数据
     * @return
     */
    List<Dict> queryXZQChildrenByParentId(Dict params);
//    List<Dict> queryXZQParentsByChildrenId(@Param("childrenId")String childrenId, @Param("tableName")String tableName);
    /**
     * 查询父节点通过子节点id列表
     * @param childrenIds 子节点id列表
     * @param tableName 表名
     * @param childField 子字段
     * @param parentField 父字段
     * @return
     */
    List<Dict> queryParentsByChildrenIdExtend(@Param("childrenIds")List<Long> childrenIds
            , @Param("tableName")String tableName
            ,@Param("childField")String childField
            ,@Param("parentField")String parentField
    );
}
